package cn.rocksolid.sport.test;

import cn.rocksolid.proxy.TestProxyApplication;
import cn.rocksolid.sport.common.Constant.AccessType;
import cn.rocksolid.sport.common.context.RockSolidContextHolder;
import cn.rocksolid.sport.common.context.RockSolidContextImpl;
import cn.rocksolid.sport.common.utils.Guid;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.junit.Before;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest(classes = TestProxyApplication.class)
public abstract class RockSolidBaseTestCase {

  @Before
  public void initCtx() {
    RockSolidContextImpl temporaryContext = new RockSolidContextImpl();
    temporaryContext.setAgencyId("WanShiTiYu");
    temporaryContext.setAccessId("JUNIT_TESTER");
    temporaryContext.setAccessType(AccessType.MEMBER);
    temporaryContext.setAppId(Guid.random());
    temporaryContext.setClientIp("192.168.1.16");
    temporaryContext.setLocation("TEST_LOCATION");
    RockSolidContextHolder.setContext(temporaryContext);
  }

  public <T> Page<T> page() {
    return page(1L, 10L);
  }

  public <T> Page<T> page(Long current, Long size) {
    Page<T> pagination = new Page<>();
    pagination.setCurrent(current);
    pagination.setSize(size);
    return pagination;
  }
}
